The present disclosure relates to networking and more particularly to techniques for communicating messages between processing entities on a network device.
A network device may have multiple processing entities within the device. In a distributed software model, each processing entity may execute one or more applications running on an operating system and network system. The network system may comprise a network stack, such as an OSI network stack of networking layer protocols. Different instantiations of an application may run on multiple processing entities within the network device, and application messages may be communicated between the instantiations using messaging schemes supported by the networking layer protocols.
The multiple processing entities may provide redundancy to the network device to avoid traffic disruption upon a failure event, wherein a failover should occur to switch processing to a redundant or standby processing entity. In some network devices, there is a need for high failover capability in order to provide high availability (HA) or continuous availability messaging to ensure hitless failover. Typically, applications that support HA messaging need to ensure redundancy for all permutations of failures at the processing entities of the network device. To avoid losing critical messages during a failover, an application needs to guarantee that messages can be delivered regardless of which end (i.e., the source or the destination) is failing over. This typically requires an application to include additional software to handle the various failover permutations. Thus, multiple applications running on a network device may each need to implement its own software to support HA messaging.